1. Field of the Invention
The present invention relates to testing and initializing dynamic random access memory.
2. Background of the Related Art
Computer systems typically include a processor, memory, and a memory controller that receives requests from the processor to read information from memory and to write other information into the memory. The memory is often provided in one or more memory units, such as a dual inline memory module (DIMM). However, reading data from memory or writing data to memory requires a series of read or write operations accompanied by transmission of the data to or from the processor over a bus. Thus the speed and bandwidth of the communications between the processor and the memory become a significant limitation when large amounts of data must be read from memory or written into memory.
During startup of a computer system, all memory locations are checked for errors, such as a memory bit that is stuck high, stuck low, reads high when it should be low, or read low when it should be high. This test of the memory may be referred to as a built-in-self test (BIST), in which the processor loads all memory locations with a pattern, then reads each memory location and compared the data read to the known good pattern that was previously written into that memory location. This process may be repeated one or more times using different patterns in order to detect other errors. Although this process has been proven to be effective at identifying errors in the memory, the ever-increasing amount of memory available in computer systems requires ever-increasing number of transmissions between the processor and the memory. Accordingly, the large number of transmissions necessary to complete the test results in significant generation of heat and consumes a significant amount of time.